/**
 * 熵巡 - 企业级氚云OpenAPI数据管理平台
 * 开发归属 Alyr.net
 * 自动接口测试功能
 * 尊重劳动成果是一种美德
 */

// 氚云API管理系统 - 自动检测API状态

document.addEventListener('DOMContentLoaded', function() {
    // 页面加载后自动开始测试
    setTimeout(function() {
        autoTestConnection();
        setTimeout(autoTestAuth, 1000);
        setTimeout(autoTestApi, 2000);
    }, 500);
});

function autoTestConnection() {
    fetch('api/connection.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        }
    })
    .then(response => {
        console.log('Connection response status:', response.status);
        console.log('Connection response content-type:', response.headers.get('content-type'));
        
        if (!response.ok) {
            throw new Error(`HTTP ${response.status}: ${response.statusText}`);
        }
        
        return response.text(); // 先获取文本
    })
    .then(text => {
        console.log('Connection raw response:', text.substring(0, 200));
        
        // 检查是否是HTML错误页面
        if (text.trim().startsWith('<') || 
            text.includes('<html') || 
            text.includes('<br />') || 
            text.includes('Fatal error') ||
            text.includes('Parse error')) {
            throw new Error('API返回HTML错误页面而非JSON数据，请检查服务器配置');
        }
        
        // 检查是否为空响应
        if (!text || text.trim() === '') {
            throw new Error('服务器返回空响应');
        }
        
        // 尝试解析JSON
        try {
            return JSON.parse(text);
        } catch (parseError) {
            console.error('JSON解析错误:', parseError.message);
            console.error('响应内容:', text);
            throw new Error(`JSON解析失败: ${parseError.message}`);
        }
    })
    .then(data => {
        showResult('connection-result', data);
    })
    .catch(error => {
        showResult('connection-result', {
            success: false,
            message: '连接测试失败: ' + error.message
        });
    });
}

function autoTestAuth() {
    fetch('api/auth-test.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        }
    })
    .then(response => response.json())
    .then(data => {
        showResult('auth-result', data);
    })
    .catch(error => {
        showResult('auth-result', {
            success: false,
            message: '认证测试失败: ' + error.message
        });
    });
}

function autoTestApi() {
    fetch('api/api-test.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        }
    })
    .then(response => response.json())
    .then(data => {
        showResult('api-result', data);
    })
    .catch(error => {
        showResult('api-result', {
            success: false,
            message: 'API测试失败: ' + error.message
        });
    });
}

function showResult(elementId, data) {
    var element = document.getElementById(elementId);
    element.className = 'test-result ' + (data.success ? 'success' : 'error');
    element.style.display = 'block';
    
    var html = '<strong>' + data.message + '</strong>';
    
    // 显示HTTP状态码 - 与消息同行显示
    if (data.http_code) {
        html += ' <span style="color: #666;">(HTTP状态码: ' + data.http_code + ')</span>';
    }
    
    // 不再显示数据数量
    
    // 显示API错误信息
    if (data.api_error) {
        html += '<br><span style="color: #999;">接口信息: ' + data.api_error + '</span>';
    }
    
    // 显示完整的响应数据（折叠显示）
    if (data.response) {
        html += '<br><details style="margin-top: 10px;">';
        html += '<summary style="cursor: pointer; color: #666;">点击查看完整响应数据</summary>';
        html += '<pre style="background: #f5f5f5; padding: 10px; margin-top: 5px; font-size: 12px; max-height: 200px; overflow-y: auto;">' + JSON.stringify(data.response, null, 2) + '</pre>';
        html += '</details>';
    }
    
    element.innerHTML = html;
}